// 故事相关API

// 基础URL
const BASE_URL = 'http://localhost:8088/api';

/**
 * 获取个人故事数据
 * @param {string} userId 用户ID
 * @returns {Promise} 返回Promise对象
 */
export function getPersonalStory(userId) {
    return new Promise((resolve, reject) => {
        uni.request({
            url: `${BASE_URL}/story/user/${userId}`,
            method: 'GET',
            success: (res) => {
                if (res.statusCode === 200 && res.data.success === true) {
                    resolve(res.data);
                } else {
                    reject(res.data.message || '获取故事数据失败');
                }
            },
            fail: (err) => {
                console.error('请求失败:', err);
                reject('网络请求失败');
            }
        });
    });
}

/**
 * 保存个人故事数据
 * @param {Object} storyData 故事数据对象
 * @returns {Promise} 返回Promise对象
 */
export function savePersonalStory(storyData) {
    return new Promise((resolve, reject) => {
        uni.request({
            url: `${BASE_URL}/story/save`,
            method: 'POST',
            data: storyData,
            header: {
                'content-type': 'application/json'
            },
            success: (res) => {
                if (res.statusCode === 200 && res.data.code === 0) {
                    resolve(res.data.data);
                } else {
                    reject(res.data.message || '保存故事数据失败');
                }
            },
            fail: (err) => {
                console.error('请求失败:', err);
                reject('网络请求失败');
            }
        });
    });
}

/**
 * 更新个人故事数据
 * @param {string} storyId 故事ID
 * @param {Object} storyData 故事数据对象
 * @returns {Promise} 返回Promise对象
 */
export function updatePersonalStory(storyId, storyData) {
    return new Promise((resolve, reject) => {
        uni.request({
            url: `${BASE_URL}/story/update/${storyId}`,
            method: 'PUT',
            data: storyData,
            header: {
                'content-type': 'application/json'
            },
            success: (res) => {
                if (res.statusCode === 200 && res.data.code === 0) {
                    resolve(res.data.data);
                } else {
                    reject(res.data.message || '更新故事数据失败');
                }
            },
            fail: (err) => {
                console.error('请求失败:', err);
                reject('网络请求失败');
            }
        });
    });
}

/**
 * 上传故事图片
 * @param {string} filePath 文件路径
 * @param {string} userId 用户ID
 * @returns {Promise} 返回Promise对象
 */
export function uploadStoryImage(filePath, userId) {
    return new Promise((resolve, reject) => {
        uni.uploadFile({
            url: `${BASE_URL}/story/upload/image`,
            filePath: filePath,
            name: 'file',
            formData: {
                'userId': userId
            },
            success: (res) => {
                const data = JSON.parse(res.data);
                if (res.statusCode === 200 && data.code === 0) {
                    resolve(data.data);
                } else {
                    reject(data.message || '上传图片失败');
                }
            },
            fail: (err) => {
                console.error('上传失败:', err);
                reject('网络请求失败');
            }
        });
    });
}